//
// Created by Hello on 2024/2/5.
//
#include <iostream>
#include <vector>
#include <cassert>

using namespace std;
// 485. 最大连续1的个数
// 给定一个二进制数组 nums ， 计算其中最大连续 1 的个数。
// 输入：nums = [1,1,0,1,1,1]
// 输出：3
// 解释：开头的两位和最后的三位都是连续 1 ，所以最大连续 1 的个数是 3.

class Solution {
public:
    int findMaxConsecutiveOnes(vector<int>& nums)
    {
        int ans = 0, cur = 0;   // ans存放最后结果（初始为0），cur累计当前连续1的个数
        for(int i = 0; i < nums.size(); i++)
        {
            if(nums[i] == 0)
                cur = 0;    // 计数器清零
            else
                cur++;
            if(cur > ans) ans = cur;
        }
        return ans;
    }
};
int main() {
    vector<int> nums1 = {1, 1, 0, 1, 1, 1};
    cout << Solution().findMaxConsecutiveOnes(nums1) << endl;    // 3

    vector<int> nums2 = {1,0,1,1,0,1};
    cout << Solution().findMaxConsecutiveOnes(nums2) << endl;   // 2

    vector<int> nums3 = {1,1,0,1};
    cout << Solution().findMaxConsecutiveOnes(nums3) << endl;   // 2
    return 0;
}

